#系统文件库
import os
import re
#批量删除库
import shutil
import time
import uuid
#文件操作类
class MyFile:
    def __init__(self,file_dir='./static/upload'):
        self.file_dir = file_dir
    #重命名
    def rename(self,filename):
        #获取文件路径
        ext = os.path.splitext(filename)[1]
        #生成新的文件名
        newfile = uuid.uuid4().hex+ext
        return newfile

    #创建文件夹
    def mkdir(self,id):
        #判断是否存在
        if not os.path.exists(self.file_dir+'/'+str(id)):
          os.mkdir(self.file_dir+'/'+str(id))

    #列出所有文件    ,back=False(是指是否后缀名排序),back_reverse=False后缀排序    #不是以字母排序，以2进制ASCII排序
    def list_dir(self,id,reverse=False,back=False,back_reverse=False): 
        # 排序
        # sort（list）内置方法 sorted全局排序 (重新赋值)
        mylist = os.listdir(self.file_dir+'/'+str(id))
        #空列表
        li = []
        for i in mylist:
            #获取文件后缀
            back1 = os.path.splitext(i)[-1]
            li.append([i,back1])
        # li.sort(reverse=reverse)
        # #判断逻辑  如果根据后缀做排序
        # if back:
        #     li.sort(key = lambda x:x[1],reverse = back_reverse)
        # return li
        li = sorted(li,reverse=reverse)
        if back:
            li = sorted(2,key = lambda x:x[1],reverse = back_reverse)
        return li
    def list_dirs(self,id):
        mylist = os.listdir(self.file_dir+'/'+str(id))
        return mylist
   

    #删除文件
    def remove(self,id,filename):
        os.remove(self.file_dir+'/'+str(id)+'/'+filename)
    #注销整体目录
    def remove_all(self,id):
        shutil.rmtree(self.file_dir+'/'+str(id))
    def get(self,id):
        pass
    def put(self,id,oldname,newname):
        os.rename((self.file_dir+'/'+str(id)+'/'+oldname),self.file_dir+'/'+str(id)+'/'+newname)      
        

# myfile = MyFile()
# print(myfile.rename('111.mp4'))
# print(myfile.list_dir(45,True,True,True))
# print(myfile.mkdir(50))
# time.sleep(2)
# print(myfile.list_dir(43))
# print(myfile.remove(30,'30.jpg'))
# print(myfile.remove_all(30))



